﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.Security;
using System.Web.UI.WebControls;
using System.Security.Cryptography;
using System.Text;
using System.Data;
using DataAccessLayer;
using BusinessLogicLayer;
using System.Drawing;

namespace ChamCong.Admin
{
    public partial class NhapNV : BasePage
    {
        NhanVienBLL NVBLL = new NhanVienBLL();
        LuongBLL LBLL = new LuongBLL();
        CT_DangNhapBLL dnBLL = new CT_DangNhapBLL();
        QuanLyPhanQuyenBLL pq = new QuanLyPhanQuyenBLL();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                txtMaNV.Text = NVBLL.LayMaNVTT().ToString();
            }
        }

        protected void btnThemNV_Click(object sender, EventArgs e)
        {
            try
            {

                NHANVIEN NV = new NHANVIEN();
                LUONG Luong = new LUONG();
                

                if (txtMaNV.Text == "" || txtHoTen.Text == "" || txtCMND.Text == "" || txtSoDT.Text == "")
                {
                    sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", "Nhập đủ các thông tin yêu cầu!");
                }
                else
                {
                    //Gán giá trị cho NHANVIEN
                    NV.MaNV = int.Parse((txtMaNV.Text));
                    NV.HoTen = txtHoTen.Text;
                    if (txtNgaySinh.Text != "")
                    {
                        NV.NgaySinh = DateTime.ParseExact(txtNgaySinh.Text, "dd/MM/yyyy", null);
                    }
                    NV.GioiTinh = drGioiTinh.Text;
                    NV.CMND = txtCMND.Text;
                    NV.ThuongTru = txtThuongTru.Text;
                    NV.TamTru = txtTamTru.Text;
                    NV.SoDT = txtSoDT.Text;
                    NV.Email = txtEmail.Text;
                    NV.QuocTich = txtQuocTich.Text;
                    NV.MaLoaiNV = int.Parse(drLoaiNV.SelectedValue);
                    NV.MaBangCap = int.Parse(drBangCap.SelectedValue);
                    NV.NoiCap = txtNoiCap.Text;
                    NV.BangCapKhac = txtBangCapKhac.Text;
                    NV.MaPB = int.Parse(drPhongBan.SelectedValue);
                    if (txtNgayVaoLam.Text != "")
                    {
                        NV.NgayVaoLam = DateTime.ParseExact(txtNgayVaoLam.Text, "dd/MM/yyyy", null);
                    }


                    //ngay nghi thuong niên
                    if (txtNgayNghi.Text.Trim() != "")
                    {
                        NV.SoNgayPhepThuongNien = int.Parse(txtNgayNghi.Text);
                    }

                    //Gán giá trị cho LUONG
                    Luong.MaNV = NV.MaNV;
                    if (txtLuongCoBan.Text != "")
                    {
                        NV.MucLuong = int.Parse(txtLuongCoBan.Text);
                        Luong.MucLuong = int.Parse(txtLuongCoBan.Text);
                        Luong.NgayDinhLuong = DateTime.Now;
                    }


                    if (NVBLL.KiemTraTonTai(NV.CMND, NV.Email, NV.SoDT, NV.MaNV) != null)
                    {
                        sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", NVBLL.KiemTraTonTai(NV.CMND, NV.Email, NV.SoDT, NV.MaNV) + " đã tồn tại!");
                    }
                    else
                    {
                        if (!ktTenDangNhap())
                        {
                            sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", "Tên đăng nhập đã tồn tại!");
                        }
                        else
                        {
                            NVBLL.ThemNV(NV);
                            CT_DANGNHAP tk = new CT_DANGNHAP();
                            CT_ROLE r = new CT_ROLE();
                            if (txtTenDangNhap.Text != "")
                            {
                                
                                tk.TenDangNhap = txtTenDangNhap.Text.Trim();
                                tk.MatKhau = MaHoa(txtCMND.Text.Trim());
                                tk.MaNV = int.Parse(txtMaNV.Text);
                                tk.Active = 1;
                                dnBLL.ThemTaiKhoan(tk);

                                r.MaNV = int.Parse(txtMaNV.Text);
                                r.MaRole = 3;
                                pq.themTaiKhoanVaoRole(r);
                            }
                            


                            LBLL.ThemLuong(Luong);
                            

                            //Thêm vào chi tiết chức vụ
                            for (int i = 0; i < cblChucVu.Items.Count; i++)
                            {
                                CT_CHUCVU CTCV = new CT_CHUCVU();
                                CT_ChucVuBLL CTCVBLL = new CT_ChucVuBLL();

                                CTCV.MaNV = NV.MaNV;

                                if (cblChucVu.Items[i].Selected && cblChucVu.Items[i].Enabled != false)
                                {
                                    CTCV.MaCV = int.Parse(cblChucVu.Items[i].Value);
                                    CTCVBLL.ThemCTChucVu(CTCV);
                                }
                            }
                            lblTemp.Text = txtMaNV.Text;
                            Resert();
                            sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Thêm thành công!");
                            //thêm link tới trang phân quyền.
                            //string script = "Redirect();";
                            //ScriptManager.RegisterStartupScript(this, this.GetType(), "Redirect", script, true);
                        }

                        //Response.Write("<script LANGUAGE='JavaScript' >document.location='ThemNV.aspx';alert('Thêm Nhân Viên Thành Công!');</script>");
                    }
                }
            }
            catch (Exception ex)
            {
                sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", ex.Message);
            }


        }
        public bool ktTenDangNhap()
        {
            if (txtTenDangNhap.Text != "")
            {
                if (dnBLL.ktTenDangNhap(txtTenDangNhap.Text.Trim()) == null)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return true;
            }
        }
        public string MaHoa(string mk)
        {
            return FormsAuthentication.HashPasswordForStoringInConfigFile(mk.Trim(), "MD5");
        }

        protected void Resert()
        {
            txtMaNV.Text = null;
            txtHoTen.Text = null;
            txtThuongTru.Text = null;
            txtTamTru.Text = null;
            txtNoiCap.Text = null;
            txtNgaySinh.Text = null;
            txtNgayVaoLam.Text = null;
            txtTenDangNhap.Text = null;
            txtBangCapKhac.Text = null;
            txtSoDT.Text = null;
            txtEmail.Text = null;
            txtQuocTich.Text = null;
            //lbThongBao.Text = null;
            cblChucVu.ClearSelection();
        }

        protected void btnHuy_Click(object sender, EventArgs e)
        {
            Resert();
            txtMaNV.Text = "";
            txtTenDangNhap.Text = "";
            txtSoDT.Text = "";
            txtHoTen.Text = "";
        }
    }
}